我使用的是Python 3,但问题并没有真正与特定语言绑定。实现子表(查看表):设计类关系
我有class Table
实现一个主键的表。该类的一个实例包含实际的数据(这是非常大的)。
我想允许用户通过为表的行提供一个过滤器来创建一个子表。我不想复制表格,所以我打算在子表格中保留父表格中主键的子集。
显然,子表只是父表的视图;如果父表发生更改,它将会改变,如果父表被销毁,它将变为无效,并且如果它们从父表中删除,它将丢失一些行。 [编辑:澄清,如果父表被改变,我不在乎子表发生了什么;任何行为都可以。]
我该如何连接两个类?我在想:
class Subtable(Table):
def __init__(self, table, filter_function):
# ...
我的假设是,Subtable
保持的Table
的接口,除了略微覆盖继承方法只是为了检查,如果该行是这是一个很好的实现?
问题是,我不知道如何初始化Subtable
实例,因为我不想复制传递给它的表对象。它甚至有可能吗?
此外,我想给class Table
一个实例方法,返回Subtable
实例;但是在Subtable
上创建了Table
的依赖关系,我想最好避免这种情况?
你有没有考虑过把这个数据结构转移到数据库中? Python自带'sqlite3',它可以让你在内存中创建SQL DB。 – katrielalex 2010-11-18 20:16:19
是的,但现在决定坚持自定义实现。 – max 2010-11-18 20:17:56